const { SECRET } = require('../config')
const jsonwebtoken = require('jsonwebtoken')
const jwt = require('koa-jwt')
// =================验证token==================
const auth = jwt({ secret: SECRET});
// const auth = async (ctx,next) =>{
//   console.log(ctx.request.header.authorization)
//   // Bearer token, 默认为空
//   const { authorization = '' } = ctx.request.header
//   // 获取token
//   const token = authorization.split(' ')[1]
//   try {
//     // 解析用户信息
//     const user = jsonwebtoken.verify(token, SECRET)
//     // state 保存用户的信息,用于后续的授权
//     ctx.state.user = user
//     console.log(user)
//   } catch (error) {
//     // token校验失败，401
//     ctx.throw(401, error.message)
//   }
//   await next()
// }

// =================授权========================
const checkOwn =async (ctx, next)=> {
  // 判断用户是否有权限操作
  // console.log(ctx.state)
  // koa-jwt解析出来的数据会放到ctx.state中
  if (ctx.params.id!==ctx.state.user.userId) {
    ctx.throw(403, '没有操作权限')
  }
  await next()

}

module.exports = {auth, checkOwn}